package com.j1ay.forum.service;

import com.alibaba.fastjson.JSONObject;
import com.j1ay.forum.model.dto.params.AgreeParams;
import com.j1ay.forum.model.dto.params.PageParams;
import com.j1ay.forum.model.dto.params.QuestionParam;
import com.j1ay.forum.model.pojo.vo.QuestionVo;
import com.j1ay.forum.model.pojo.vo.Result;



/**
 * @Author J1ay
 * @Date 2021/12/14 21:40
 * @Description 问题
 */

public interface QuestionService {
    /**
     * 首页讨论区数据 分页实现
     * @param pageParams
     * @return
     */
    Result listQuestion(PageParams pageParams);


    /**
     * 首页讨论区热门实现
     * @param limit
     * @return
     */
    Result hotQuestion(int limit);

    /**
     * 最新
     * @return
     */
    Result newQuestion(int limit);

    /**
     * 根据id查看问题详情
     * @param questionId
     * @return
     */
    Result findQuestionById(Long questionId);


    /**
     * 提出问题
     * @param questionParam
     * @return
     */
    Result addQuestion(QuestionParam questionParam);

    Result delete(Long id);

    Result findQuestionByType(Long typeId, PageParams pageParams);

    /**
     * 点赞该问题
     * @param questionId
     * @return
     */
    Result toPraiseQuestion(Long questionId);

    /**
     * 根据username 获取该用户的所有回答列表
     * @param username
     * @return
     */
    Result getUserQuestion(String username);

    /**
     * 根据问题id获取问题详情
     * @param questionId
     * @return
     */
    QuestionVo findQuestionVoById(Long questionId);

    /**
     * 问题采纳该答案
     * @param agreeParams
     * @return
     */
    Result toAgreeAnswer(AgreeParams agreeParams);
}
